home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / amac36.arc / RFRM25.QM < prev    next >
Text File  |  1991-03-16  |  77KB  |  1,659 lines

  1. *                              (RFRM25).QM
  2. *┌──────(INDEX) Macros to Reformat Blocks, Paragraphs and Documents ───────────┐
  3. *│                                                                Bytes
  4. *│^(1_)  Move block, fill old block with blanks                     16 <-new
  5. *│#(f1_) Capitalize word at cursor                                   7 <-new
  6. *│#(f2_) Capitalize first letter of word at cursor                  10 <-new
  7. *│#(f3_) Capitalize first letter of every word in column block      53 <-change
  8. *│#(f4_) Un-capitalize word at cursor                                7 <-new
  9. *│
  10. *│@(F6)  Right Justifies BLOCK                                      81 <-change
  11. *│@(F1)  Right Justifies DOCUMENT                                  106
  12. *│@(F2)  Right Justifies DOCUMENT, Screen preview                   14
  13. *│@(F4)  Removes Right Justification from LINE or BLOCK             81
  14. *│@(F5)  Removes Right Justification from DOCUMENT                  80
  15. *│@(F8)  Deletes all BUT single space BLANK lines in document       21
  16. *│@(F7)  SINGLE SPACE document, Deletes ALL BLANK lines in document 20
  17. *│@(F9)  DOUBLE SPACE document                                      38
  18. *│@(F10) TRIPLE SPACE document                                      62
  19. *│
  20. *│@(1)  Adds asterisk and space in front of BLOCK                   27
  21. *│@(t)  Adds asterisk and space in front of BLOCK (Tim Farley)      44
  22. *│@(3)  Adds asterisk and space in front of BLOCK or PARAGRAPH      18
  23. *│@(6)  Adds asterisk and one space in column 1                     12
  24. *│@(5)  Deletes first two characters of line                        11
  25. *│@(4)  Deletes asterisk and one space in column 1                  25
  26. *│@(7)  Deletes asterisk and ALL space at beginning of line         17
  27. *│@(2)  Deletes asterisk and one space in front of BLOCK            11
  28. *│@(9)  COUNTS number of words in a document, words=letters/numbers 50
  29. *│@(0)  COUNTS number of words in a document, words sep. by spaces  80
  30. *│@(n)  COUNTS number of characters in a document                   92
  31. *│
  32. *│^(3_) Formats PARAGRAPH, fast and small                            8
  33. *│^(0_) Formats PARAGRAPH                                           60
  34. *│^(5_) Formats DOCUMENT with blank lines forming PARAGRAPHS        26
  35. *│^(8_) Formats QMAC txtfile BLOCK with asterisks in col. 1         61
  36. *│^(9_) Formats BLOCK.  Must position cursor at BLOCK begin         62
  37. *│^(7_) Formats Message Reader Paragraph     (Tim Farley)          132
  38. *│
  39. *│^(b)  Replace "period space" w/ "period two_spaces" - PARAGRAPHS  54
  40. *│^(c)  Replace "period space" w/ "period two_spaces" - DOCUMENT    38
  41. *│
  42. *│^(F9_)  Make a COMMA delimited file          (Sammy Mitchell)     37
  43. *│^(F10_)"Break apart" a COMMA delimited file  (Sammy Mitchell)     54
  44. *│
  45. *│@(h)  Select Index item with cursor line, then <enter>.           47
  46. *│
  47. *│(Index)          - How to locate macro or item below from Index using @h
  48. *│(Description)    - Reformat Macros
  49. *│(Macros)         - Reformat Macros
  50. *│(Other) Macros   - not included
  51. *│(Test) Paragraph To Reformat
  52. *│(Version) history
  53. *└────────[ be sure to leave at least one blank line at end of Index  ]────────┘
  54.  
  55.  
  56. * (Description):
  57.  
  58. * (RFRM25).QM are macros to reformat QEDIT blocks, paragraphs, and
  59. * documents.   Asterisks are also added and deleted in front of lines,
  60. * block, and paragraphs. Number of words and characters in a document
  61. * can also be counted. Comma delimited files can also be made and
  62. * "broken apart". Documents can formatted with right justification.
  63. * Blocks can be right justified. Documents can be double and triple
  64. * spaced.
  65. *
  66. * If column width of the unformatted paragraphs and blocks are greater
  67. * than 80 columns, there must be enough blank lines for ^8, 9 & 0 to
  68. * paste the reformatted text back and not overlap unformatted areas.  In
  69. * other words, BE CAREFUL!
  70. *
  71. * For faster macro execution, replace "C:" with your ram drive.
  72. *
  73. * Insert and AutoIndent should be ON.
  74. *
  75. * (Other) Macros available: See ALLMACRO.INF.
  76.  
  77.  
  78. * (Index) Use;
  79. *
  80. * To locate a macro or item in this file, press @h, place the cursor
  81. * line on the desired item in the Index above, and press <enter>.
  82. * See BOOK15.QM for more details.
  83.  
  84. * These macros require "QEdit and QMAC v2.1, February, 1990" or later.
  85.  
  86. * To BEGIN, just type "START RFRM" <Enter>. All pertinent files will be
  87. * loaded in the "Ring" for viewing, and RFRM25.MAC is read.
  88. * Alternatively, type "START RFRM 0" <Enter> and the disk copies of all
  89. * files in the "Ring" will be loaded ready for editing, saving time.
  90.  
  91.  
  92.  
  93. * (Macros):------------
  94.  
  95. * ┌───────────────────────────────────────────────────────────────────┐
  96. * │@(1) Place asterisk and space in column 1 in front of marked block │
  97. * └───────────────────────────────────────────────────────────────────┘
  98.  
  99. * To run, first mark and close a block with markblockbegin and
  100. * markblockend, markline, or dropanchor.  Blocks may contain blank
  101. * lines.  No column blocks, please.  The cursor may then be positioned
  102. * anywhere to run.  Press Alt and 1 at the same time.  An asterisk and a
  103. * space are placed in column 1 in front of the marked block only.
  104. * Marked block does NOT have to be a paragraph as in Alt_2.  If a block
  105. * is not marked, the cursor line is treated as a block, and an asterisk
  106. * and space are placed in column 1 the same as done with Alt_6.
  107.  
  108. @1 Macrobegin
  109.         Cut                             * Cut block to scrap
  110.         Editfile "$" Return             * Load $ (temp file)
  111.         Quit                            * Quit if in ring
  112.         Editfile Return                 * Reload
  113.         Paste                           * Paste block to $
  114.  NEXT:                                  * Come here until done
  115.         Begline                         * Stay in column 1
  116.         "* "                            * Put asterisk space in col 1
  117.         Cursordown                      * Move down to next line
  118.  Jtrue  NEXT:                           * If not done go to NEXT
  119.         Begfile                         * Go to begfile $
  120.         Markblockbegin                  * Get line 1 col 1 in block
  121.         Copy                            * Get block w/asterisks to scrap
  122.         Quit                            * Quit $
  123.         Paste                           * Put block back with asterisks
  124.  END:
  125. *
  126. * 27 bytes Tue  09-11-1990  19:28:29
  127.  
  128.  
  129. *┌──────────────────────────────────────┐
  130. *│ @(t) Alternate version of @1         │
  131. *└──────────────────────────────────────┘
  132.  
  133. * Here's an alternate version of Alt_1 from Tim Farley of SemWare that
  134. * seems to do the same thing.  It's faster, runs smoother, but is a
  135. * little larger if that's important.  I feel Tim came up with a better
  136. * way to do the same thing by using shiftright and fillblock.  Use
  137. * whichever you prefer that get's the job done for you.
  138. *
  139. * PN>I tried out two dBase commenting macros (from Tom Hogshead) last night.
  140. * PN>Neither of them does quite what I'm trying to achieve.
  141. * PN>
  142. * PN>What I need to do is comment out (i.e., put an asterisk in front of)
  143. * PN>each line in a blocked area.
  144. *
  145. * Here's an alternate version that uses the column marking ability,
  146. * ShiftRight, and FillBlock to do the job.
  147.  
  148. * TH>When marking a block with markblockbeg and markblockend, it adds one
  149. * TH>extra line to the bottom of the block.  Adding cursorup in line #11
  150. * TH>seems to get things to comment out the block as originally marked.
  151. * TH>Line blocks work OK.
  152. *
  153. * Hmmmm....I'll try it out.
  154. *
  155. * Ooops!  I guess I broke part of it in my last minute tweaking.
  156. *
  157. * Here is a version that works right in *all* cases, including a
  158. * single line:
  159.  
  160. *
  161. * DBASE COMMENT OUT MACRO
  162. *
  163. * Mark a block (doesn't matter if it is a char, line or column block).
  164. * Hit this key, and all the lines in the block will be commented out
  165. * with a "* " at the beginning of the line.
  166. *
  167. * After it is done, the block will be left marked as a line block,
  168. * and the cursor will be at the top of the block.
  169. *
  170. * Correctly detects case where you are in the middle of marking,
  171. * and also the case where no block is marked.
  172. *
  173. @t   MacroBegin
  174.      GotoBlockBeg              * Has block been closed?
  175.      GotoBlockEnd JTrue doit:  * if cursor moved, go ahead
  176.      MarkLine                  * no movement?  close block
  177.      GotoBlockEnd JFalse end:  * no movement?  no block!  quit.
  178.    doit:
  179.      EndLine BegLine           * <----NEW  for single line case
  180.      GotoBlockEnd              * Remember end of the block
  181.      GotoBlockBeg              * But go to beginning
  182.      MarkLine                  * Mark as line from here...
  183.      PrevPosition              * ...to the previous end of block.
  184.      MarkLine
  185.      BegLine                   * <----NEW  for column block case
  186.      ShiftRight ShiftRight     * Two characters over please
  187.      GotoBlockEnd              * Remember end of the block
  188.      GotoBlockBeg              * But go to beginning
  189.      MarkColumn                * Start marking a column
  190.      PrevPosition              * ...to end of previous block
  191.      BegLine                   * But only in column 1 of these lines
  192.      MarkColumn                * ...and finish marking.
  193.      FillBlock "*" Return      * Fill Column 1 with Stars!
  194.      GotoBlockEnd              * Remember end of the block
  195.      GotoBlockBeg              * But go to beginning
  196.      MarkLine
  197.      PrevPosition MarkLine     * Re-mark as a line block
  198.      GotoBlockBeg              * And leave us at the top.
  199.      Jump done:
  200.    end:
  201.      UnMarkBlock
  202.    done:
  203. *
  204. * 44 bytes Fri  08-24-1990  16:23:16 (line added TH )
  205.  
  206.  
  207. * Interestingly enough, since "*" is also a comment mark for QEdit
  208. * macros, you can use this to comment out lines in QEdit macros
  209. * too!
  210. *
  211. * There is one special case where this macro can do something odd,
  212. * and that is if you mark a single line as a block and comment it
  213. * out.   But since a single line can be commented out just by
  214. * hitting HOME and typing "*", I doubt that will be a problem.
  215. *
  216. * One nice side effect:  it leaves the lines marked as lines, so if
  217. * you want to *uncomment* them, just hit ShiftLeft twice.
  218. *
  219. * If you remove the comments and reformat, I think you can fit this
  220. * in QCONFIG.DAT.
  221. *
  222. * --Tim Farley
  223.  
  224.  
  225.  
  226. * ┌────────────────────────────────────────────────────────────────┐
  227. * │@(2)   Deletes asterisk and one space in front of marked block  │
  228. * └────────────────────────────────────────────────────────────────┘
  229. @2 Macrobegin
  230.         Gotoblockbeg                    * Block?
  231.  JFalse END:                            * No block!  end
  232.         Shiftleft Shiftleft             * Delete asterisk and space
  233.         Unmarkblock                     * Unmarkblock
  234.  END:
  235. *
  236. * 11 bytes Wed  08-22-1990  10:29:17
  237.  
  238.  
  239.  
  240.  
  241.  
  242. * ┌────────────────────────────────────────────────────────────────────┐
  243. * │@(3) Places an asterisk and space in front of block that IS a       │
  244. * │   paragraph and also in front of any paragraph that is NOT marked  │
  245. * │   as a block from the cursor to the end of the paragraph.          │
  246. * └────────────────────────────────────────────────────────────────────┘
  247. *
  248. * To run, first either mark a paragraph as a block with markblockbegin
  249. * and markblockend or position the cursor at the beginning of a
  250. * paragraph in column 1.  After loading the macro, press Alt and 3 at
  251. * the same time.  An asterisk and a space are placed in column 1 in
  252. * front of the block, or the paragraph from the cursor to the end
  253. * of the paragraph.  Remember, a paragraph is defined as having a
  254. * blank line at the beginning and end.
  255. *
  256. @3 Macrobegin
  257.         Gotoblockbeg                    * Go to block begin
  258.  NEXT:                                  *
  259.         Endline Begline                 * End if line blank
  260.  Jfalse END:                            * If line blank, go to end
  261.         "* "                            * Put asterisk space in col 1
  262.         Cursordown                      * Move down to next line
  263.  Jump  NEXT:                            * Cycle until done
  264.  END:                                   *
  265. *
  266. * 18 bytes Mon  08-20-1990  22:19:35
  267.  
  268.  
  269.  
  270. * ┌───────────────────────────────────────────────────────────┐
  271. * │@(4) Deletes asterisk and SINGLE space tat beginning of line│
  272. * └───────────────────────────────────────────────────────────┘
  273. * Use to remove asterisk and space inserted with Alt_6.  Lines with
  274. * no asterisk are not changed.
  275. *
  276. @4 Macrobegin
  277.  START:
  278.         Unmarkblock                     * Unmark any blocks
  279.         Begline                         * Go to begline
  280.         Markcolumn                      * Mark it
  281.         Cursorright                     * Go to column 2
  282.         Find "*"  Return                * Find asterisk space
  283.         "BL" Return                     * Back in block only
  284.  Jfalse NEXT:                           * If found
  285.         Delch                           * Delete asterisk
  286.         Delch                           * Delete space
  287.   NEXT:                                 * Come here if no astk in col 1
  288.         Cursordown                      * Down to next line
  289.         Begline                         * Begline
  290.         Unmarkblock                     * Unmark
  291. *
  292. * 25 bytes Tue  08-21-1990  13:30:16
  293.  
  294.  
  295.  
  296.  
  297. * ┌─────────────────────────────────────────────────────────┐
  298. * │@(5) Deletes first two characters at beginning of line   │
  299. * └─────────────────────────────────────────────────────────┘
  300.  
  301. * Lines without an asterisk will also have the first two spaces
  302. * deleted.  This macro is considerably smaller than @4 (11 vs 35 bytes),
  303. * but it is not quite as safe; @4 will NOT erase the first two
  304. * characters unless the first one is an asterisk.
  305.  
  306. @5 Macrobegin
  307.  START:
  308.         Unmarkblock                     * Unmark
  309.         Begline                         * Go to begline
  310.         Markline                        * Mark line
  311.         Shiftleft                       * Shift char 1 out of block
  312.         Shiftleft                       * Shift char 2 out of block
  313.         Unmarkblock                     * Unmark line
  314.         Cursordown                      * Down to next line
  315. *
  316. * 11 bytes Tue  09-11-1990  17:33:17
  317.  
  318.  
  319.  
  320. * ┌──────────────────────────────────────────────────────┐
  321. * │@(6) Adds asterisk and one space at beginning of line │
  322. * └──────────────────────────────────────────────────────┘
  323. * Useful in preparing txtfiles for QMAC.  To run, just press Alt_6 and an
  324. * aste isk and blank space are inserted in column 1 and 2 in front of
  325. * any other text on the line.  Use Alt_4 or 5 to remove asterisk and
  326. * space inserted with this macro.
  327. *
  328. @6  Macrobegin
  329.         Unmarkblock
  330.         Begline
  331.         "* "
  332.         Cursordown
  333.         Begline
  334. *
  335. * 12 bytes Mon  07-30-1990  11:03:14
  336.  
  337.  
  338.  
  339.  
  340. * ┌───────────────────────────────────────────────────────────┐
  341. * │@(7) Deletes asterisk and any space at beginning of line   │
  342. * └───────────────────────────────────────────────────────────┘
  343. * To run, press Alt_7, and the asterisk in column 1 on the cursorline
  344. * and all space up to the first word on the line is deleted.  This
  345. * macro erases too much if there are two asterisks and no letters on
  346. * same line.
  347. *
  348. @7 Macrobegin
  349.         Unmarkblock                     * Get ready
  350.         Begline                         * Go to begline
  351.         Delch                           * Delete first asterisk
  352.         Endline Begline                 * Check if anything else on line
  353.  Jfalse NEXT:                           * If line blank, go to next
  354.         Markcolumn                      * Otherwise, mark begline
  355.         Wordright                       * Go to first word on line
  356.         Cursorleft                      * Get cursor off word
  357.         Deleteblock                     * Delete all space to beginline
  358.   NEXT:                                 *
  359.         Cursordown                      * Cursordown and end
  360. *
  361. * 17 bytes Mon  07-30-1990  11:03:26
  362.  
  363.  
  364.  
  365. * ┌────────────────────────────────────────────────────────────────────┐
  366. * │@(9) Macro To Count Words In Document, Words are letters and numbers│
  367. * └────────────────────────────────────────────────────────────────────┘
  368. * This macro counts the number of words in a document. A "word" is at
  369. * least one letter or number separated by a space or the following word
  370. * separators:
  371. *                   !@#$%^&*'()+|-=\,./;'[]<>?:"{}
  372. * If it's important to you that words be considered as "any string
  373. * separated by at least one space", macro @0 below is the macro to
  374. * use. The @9 macro counts words like "can't" as two words; @0 counts
  375. * them as one word.
  376. * Test macro using the calibrated file WORD (19 words).
  377. * -----------------------------------
  378. * @9 Macro To Count Words In Document
  379. * -----------------------------------
  380. * [ Number of WORDS in document ] = [ Number of LINES in temp file ]
  381. *
  382. @9   Macrobegin                         *
  383. *----Be Sure Last Line Is Blank---------*
  384.      Endfile Begline                    * Check for blank line at end
  385.      Jfalse START: Addline              * If last line is NOT blank,
  386.                                         * test fails, then addline
  387. *----Copy Words To Scratch Buffer-------*
  388.  START: Begfile Insertline              * Insert blank line at top to
  389.                                         * be sure to find first word
  390.      Wordright Markword                 * Mark first word
  391.      Cursorup Delline                   * Delete blank line
  392.      Storescrbuff "1" Return            * Store word to scratch buffer
  393.  COUNT: Cursordown                      * Check if on last line
  394.      Jfalse GETCOUNT: Cursorup          * If can't cursor down, must
  395.                                         * be on last line, go to
  396.                                         * GETCOUNT, or cursorup
  397.                                         *ELSE
  398.      WordRight MarkWord                 * Move to next word and mark it
  399.      Jfalse COUNT:                      * If at endline, no word exists
  400.                                         * so COUNT again
  401.                                         *ELSE
  402.      Appendscrbuff "1" Return           * Append word to scratch
  403.      Jump COUNT:                        * and go-to COUNT again
  404. *----Get Word Count---------------------*
  405.  GETCOUNT: Editfile "!" Return Quit     * Quit temp file
  406.      Editfile Return                    * Load temp file to count words
  407.      Getscrbuff "1" Return              * Make list of words
  408.      Unmarkblock Endfile                * WORD COUNT = # LINES
  409. *
  410. * 50 bytes Sat  10-13-1990  03:18:33
  411.  
  412.  
  413.  
  414. * ┌─────────────────────────────────────────────────────────────┐
  415. * │@(0) Counts words in a document, words separated by spaces   │
  416. * └─────────────────────────────────────────────────────────────┘
  417. * @0 differs from @9 in that a "word" with @0 is considered any string
  418. * separated by at least one space. @9 macro considers a "word" to be at
  419. * least one letter or number separated by a space or the following word
  420. * separators: !@#$%^&*'()+|-=\,./;'[]<>?:"{} ... @9 counts words like
  421. * "can't" as two words; @0 counts them as one word.
  422. *
  423. * @0 is a little longer and slower than @9, but if it's important to
  424. * you that words be considered as "any string separated by at least
  425. * one space", this is the macro to use.
  426. * Test macro using the calibrated file WORD (46 words).
  427. * -----------------------------------
  428. * @0 Macro To Count Words In Document
  429. * -----------------------------------
  430. * [ Number of WORDS in document ] = [ Number of LINES in temp file ]
  431. *
  432. @0 Macrobegin
  433. *----Toggle Insert ON-------------------*
  434.         Insertline "A" Cursorleft "A"   * Insert test line
  435.         Endline Jtrue WASON:            * If not at endline-Insert is ON
  436.         Toggleinsert Jump WASOFF:       * Or Insert is off-toggle ON
  437.  WASON:  Cursorleft                     * Clean up cursor movement
  438.  WASOFF: Cursorleft Delline             * Clean up cursor movement
  439. *----Copy Document To Temp File---------*
  440.         BegFile Markblockbegin          * Mark document
  441.         EndFile Markblockend            *
  442.         Editfile "!" Return             * Load temp file
  443.         Killfile Quit Editfile Return   * Kill/quit/load temp file
  444.         Copyblock Unmarkblock           * Copy doc to temp file
  445.         Endfile Addline Begfile         * Add blank line at end
  446. *----Split Words One Word Per Line------*
  447.  COUNT1: Find " " Return  Return        * Find first space
  448.  COUNT2: Return                         * Put next word on next line
  449.  NOSPACE: CursorDown                    * Move down to next line
  450.         Jfalse DELBLANKLINES:           * If can't move down must be
  451.                                         * on last line, then begin to
  452.                                         * delete all blank lines
  453.         Cursorup                        * Move back up one line
  454.         Repeatfind                      * Find another space
  455.         JTrue COUNT2:                   * Put next word on next line
  456. *----Delete Blank Lines-----------------*
  457.  DELBLANKLINES: Begfile                 * Get to begin of file
  458.  CHK4BLANK: Endline Begline             * Check if line has text
  459.         Jtrue  NOTBLANK:                * If so, go to NOTBLANK
  460.         Delline                         * Or line is blank, delete it
  461.         Jtrue CHK4BLANK:                * Go check next line
  462.  NOTBLANK: Endpara                      *ELSE  Move to pargraph end
  463.         Cursordown                      * Move down to next line
  464.         Jtrue CHK4BLANK:                * If not eof, check again  |2.4
  465. *----Get Word Count---------------------*
  466.  GETCOUNT: Findreplace " " Return "|"   * Remove all extra spaces
  467.         Backspace Return "GN" Return    *
  468.         Makebotofscreen                 * WORD COUNT = # LINES
  469. *
  470. * 89 bytes Sat  10-13-1990  02:44:52
  471. * 85 bytes Mon  10-15-1990  21:58:35
  472. * 82 bytes Wed  02-20-1991  16:54:02
  473.  
  474.  
  475.  
  476.  
  477.  
  478. * ┌────────────────────────────────────────────────────────┐
  479. * │@(n) Counts the number of characters in a document      │
  480. * └────────────────────────────────────────────────────────┘
  481. * This macro counts the number of characters in a document. After
  482. * running, the byte size of a modified document file with all spaces
  483. * removed is shown in col. 1 on the last line. Subtract 2 x number of
  484. * lines from the byte size to get the number of characters.
  485. * Test macro using the calibrated file WORD (138 -2 x 6 = 126 chars.)
  486. * ----------------------------------------------------
  487. * @n Macro To Count Number Of Characters In A Document
  488. * ----------------------------------------------------
  489. @n Macrobegin
  490. *----Copy Document To Temp File---------*
  491.         BegFile Markblockbegin          * Mark document
  492.         EndFile Markblockend            *
  493.         Editfile "!" Return             * Load temp file
  494.         Killfile Quit Editfile Return   * Kill/quit/load temp file
  495.         Copyblock Unmarkblock           * Copy doc to temp file
  496. *----Remove All Spaces------------------*
  497.         Findreplace " " Return "|"      * Remove single space globally
  498.         Backspace Return "GN" Return    *
  499. *----Delete Blank Lines-----------------*
  500.  DELBLANKLINES: Begfile                 * Get to begin of file
  501.  CHK4BLANK: Endline Begline             * Check if line has text
  502.         Jtrue  NOTBLANK:                * If so, go to NOTBLANK
  503.         Delline                         * Or line is blank, delete it
  504.         Jtrue CHK4BLANK:                * Go check next line
  505.  NOTBLANK: Endpara                      *ELSE  Move to pargraph end
  506.         Cursordown                      * Move down to next line
  507.         Jtrue CHK4BLANK:                * If not eof, check again   |2.4
  508. *----Get Number Of Characters-----------*
  509.  GETCOUNT:                              *
  510.         Savefile                        * Save tmmp file to get size
  511.         DOS "Dir " Currentfilename      * Get size with Dir
  512.         ">C:$" Return Return            * Save DIR list to temp c:$
  513.         Editfile "C:$" Return           * Load DIR listing of temp file
  514.         Gotoline "4" Return             * Drop down to file line
  515.         Wordright Markword Copy         * Get size to scrap
  516.         Killfile Quit                   * Kill/quit c:$
  517.         Editfile "!" Return Killfile    * Load & kill temp file
  518.         Begline Paste Makebotofscreen   * Character Count = Byte Size
  519.                                         *   minus 2 x Number of Lines
  520. * 95 bytes Sat  10-13-1990  11:27:13
  521. * 92 bytes Wed  02-20-1991  17:02:29
  522.  
  523.  
  524.  
  525. * ------------------------------------------------
  526. * ^(1_) Block move, fills old block with blanks
  527. * ------------------------------------------------
  528. *
  529. * Mark block as column or character block, not a line block. Move
  530. * cursor to location to move block to, press ^1,  and block is moved to
  531. * new location. Old block is filled with spaces.
  532. *
  533. * This macros is a slight modification to a macro written by Tim Farley
  534. * of SemWare (message #665/REGDOS conf). I changed "Paste" to PastOver"
  535. * so all surrounding text postion remains unchanged, and removed the test
  536. * if block was cut to end macro. Tim's macro and comments are included
  537. * below this macro.
  538. *
  539. 02 MacroBegin
  540.         GotoBlockBeg                    * Get to block begin
  541.         JFalse END:                     * If no block, end macro
  542.         Cut                             *ELSE Cut block to scrap
  543.         Paste                           * And paste it back where it was
  544.         PrevPosition                    * Move where new block will be
  545.         FillBlock " " Return            * Fill old block with blanks
  546.         Pasteover                       * Paste old block to new loctn.
  547.  END:                                   *
  548. *
  549. * 16 bytes Thu  02-28-1991  15:14:17
  550.  
  551.  
  552. * *  To: JOHN PHILLIPS                 Refer#: 665
  553. * *From: TIM FARLEY                      Read: NO
  554. * *Subj: Block_Move Problem?           Status: PUBLIC MESSAGE
  555. * *Conf: REGDOS (1)                 Read Type: GENERAL (+)
  556. * *
  557. * *JP>*
  558. * *JP>* Block Cut and Move with blank fill
  559. * *JP>*
  560. * *
  561. * *Neat macro, thanks for posting it.  I'm sure there are others
  562. * *here who will take advantage of it.
  563. * *
  564. * *One thing:
  565. * *
  566. * *JP>                Store_Scrbuff 'Temp.$$$'
  567. * *JP>                Return
  568. * *JP>                Cut Paste
  569. * *JP>                FillBlock ' '
  570. * *JP>                Return
  571. * *
  572. * *I don't think the Cut/Paste sequence is actually necessary,
  573. * *unless the effect desired is to get a copy of the block into the
  574. * *scrap buffer for later use (after the macro is over) by Paste or
  575. * *PasteOver.
  576. * *
  577. * *If you really want it to work more like the "MoveBlock" command,
  578. * *you could make it simpler.  Because, with MoveBlock, you HAVE to
  579. * *have closed the block, and move the cursor to where you want it
  580. * *moved to.  Thus, you get rid of two things:  (1) the need to test
  581. * *whether the block is marked, and close it if need be (not to
  582. * *mention the assumption that it is a column block); and (2) the
  583. * *need for the Pause command.
  584. * *
  585. * *Here it is:
  586. * *
  587. * @0   MacroBegin GotoBlockBeg      * Get to block
  588. *                 JFalse end:       * No move?  No block!
  589. *                 Cut               * Get into scrap
  590. *                 JFalse end:       * No cut?   No block!
  591. *                 Paste             * Put back, with marked
  592. *                 PrevPosition      * Back to where we were
  593. *                 FillBlock ' '     * Fill the original block
  594. *                 Return
  595. *                 Paste             * and put a copy at cursor.
  596. *            end:
  597. * * 19 bytes Thu  02-28-1991  15:30:52 (line added TH)
  598. *
  599. * *This macro (aside from being shorter & therefore faster) also
  600. * *quite nicely does nothing if the block is in the middle of being
  601. * *marked, or if there is no block marked.  It should work OK with
  602. * *line and character blocks too.
  603. * *
  604. * *Also:  you could modify this macro to do PasteOver instead of
  605. * *Paste at the end, which would make it paste the text "on top of"
  606. * *the pre-existing text.
  607. * *
  608. * *--Tim Farley
  609. * *  SemWare Technical Support
  610.  
  611.  
  612.  
  613. * ------------------------------------------------------
  614. * #(f1_) Capitalize word at cursor
  615. * ------------------------------------------------------
  616. *
  617. #f1 macrobegin markword upper unmarkblock
  618. *
  619. * 7 bytes Mon  08-20-1990  07:17:53
  620.  
  621.  
  622.  
  623. * ----------------------------------------
  624. * #(f2_) Capitalize first letter of word
  625. * ----------------------------------------
  626. *
  627. #f2 macrobegin
  628.     markword
  629.     gotoblockbeg
  630.     unmarkblock
  631.     markcolumn
  632.     upper
  633.     unmarkblock
  634. *
  635. * 10 bytes Sun  03-10-1991  16:05:55
  636.  
  637.  
  638.  
  639.  
  640.  
  641. *------------------------------------------------------------
  642. * #(f3_) Capitalize first letter of every word in column block      |2.5
  643. *------------------------------------------------------------
  644. *
  645. * Mark column block, then press #f3 to capitalize first letter of every
  646. * word in block. Unmark when finished if OK. Block MUST be a column
  647. * block, NOT a line or character block.
  648. *
  649. #f3     Macrobegin
  650.         Editfile "C:!" Return           * Load temp file
  651.         Killfile Quit                   * Kill/quit temp file
  652.         Gotoblockbeg                    * Position cursor to return to
  653.         Jfalse STOP:                    * Stop macro if no block
  654.         Onewindow                       * Close all windows
  655.         Horizontalwindow  Zoomwindow    * Open window
  656.         Editfile Return                 * Edit blank temp file
  657.         Copyblock                       * Copy block to temp file
  658.         Gotoblockend #255               * Mark block end +1 with #255
  659.         Begfile Insertline              * Insert line to start caps
  660.  START:                                 * on first word
  661.         Wordright                       * Move to next word
  662.         Jfalse END_LOOP:                * If no more words, END macro
  663.         Markcolumn Upper Unmarkblock    *ELSE capitalize first letter
  664.         Jump START:                     * and continue until no more
  665.  END_LOOP:                              *
  666.         Begfile Delline                 * Delete temp line
  667.         MarkColumn                      * Mark block begin
  668.         Find #255 Return Return         * Find block marker
  669.         Cursorleft                      * Move cursor to end of block
  670.         Prevwindow                      * Return to orig file
  671.         Copyoverblock                   * Copy block back to orig file
  672.                                         * where we were
  673.         Nextwindow Killfile Quit        * Kill/quit temp file and
  674.                                         * return to where we started
  675.                                         * Unmark block if OK!
  676.  STOP:                                  * We're done...
  677. *
  678. * 53 bytes Fri  02-22-1991  16:08:43
  679.  
  680.  
  681.  
  682.  
  683. * ------------------------------------------------------
  684. * #(f4_) Un-capitalize word at cursor
  685. * ------------------------------------------------------
  686. *
  687. #f4 macrobegin markword lower unmarkblock
  688. *
  689. * 7 bytes Mon  08-20-1990  07:18:07
  690.  
  691.  
  692.  
  693.  
  694. * ┌─────────────────────────────────────────────────────────────────────┐
  695. * │^(3_) Formats a paragraph.  (Macro has been around a long time)      │
  696. * └─────────────────────────────────────────────────────────────────────┘
  697. *
  698. 04 Macrobegin
  699.         Cursordown                      * move down one line
  700.         Prevpara                        * get to beginning of paragraph
  701.         Wrappara                        * reformat
  702.         Nextpara                        * go to begin next paragraph
  703. *
  704. * 8 bytes Wed  08-01-1990  10:47:36
  705.  
  706.  
  707.  
  708.  
  709. * ┌─────────────────────────────────────────────────────────────────────┐
  710. * │^(5_) Formats complete document with blank lines forming paragraphs  │
  711. * └─────────────────────────────────────────────────────────────────────┘
  712. *
  713. 06 MacroBegin
  714.         Unmarkblock                     * Unmark
  715.         Begfile                         * Get to file begin
  716.         Setrmargin "69" Return          * Set new right margin
  717.    FORMAT:                              *
  718.    Jfalse FINISH:                       * No more para? go to FINISH
  719.         WrapPara                        * Reformat
  720.         NextPara                        * Get to begin next paragraph
  721.    Jump FORMAT:                         *
  722.    FINISH:                              * No more paragraphs
  723.         Setrmargin "80" Return          * Reset right margin
  724. *
  725. * 26 bytes Wed  09-12-1990  16:47:
  726.  
  727.  
  728. *┌─────────────────────────────────────┐
  729. *│^(7_) Format Message Reader Paragraph│
  730. *└─────────────────────────────────────┘
  731. * Here's a handy macro from Tim Farley of SemWare to reformat a message
  732. * reader paragraph. Remember, paragraphs are reformated to the width
  733. * of the right margin setting, so set as needed.
  734. *
  735. * ==============================================================================
  736. * Date: 10-01-90 (19:09)           Number: 3041         SemWare Support BBS
  737. *   To: DAN SNAPPER                Refer#: 3028
  738. * From: TIM FARLEY                   Read: YES
  739. * Subj: Message reformat macro       Conf: (21) ILink
  740. * ------------------------------------------------------------------------
  741. * DS>   Does anyone have a macro to reformat a quoted 'off-line'
  742. * DS>   message paragraph and then reinsert the quotes back?
  743. * DS>
  744. * DS>
  745. * DS>
  746. *
  747. * Here it is:
  748. *
  749. *
  750. * Reader Paragraph Reform
  751. *   Mark a line block, hit this key, and it will reform the text, leaving
  752. *   all "II>" quoting on the left alone.
  753. *
  754. *   Assumes that ">" is the last character of the "quoting" mark.
  755. *   Also assumes that WordWrap is currently on when you hit it,
  756. *   and that there is a currently marked block.
  757. *
  758.  
  759. 08   MacroBegin OneWindow
  760.      GotoBlockBeg GotoBlockEnd JTrue doit: MarkLine GotoBlockEnd
  761.    doit:
  762.      ToggleWordWrap EndLine #254 ToggleWordWrap
  763.      GotoBlockBeg GotoColumn "16" Return Find ">" Return "BL" Return
  764.      JTrue foundit:
  765.      BegLine
  766.    foundit:
  767.      CursorRight
  768.      UnmarkBlock MarkColumn Find #254 Return "N" Return
  769.      GotoColumn "512" Return MarkColumn BegLine GotoBlockBeg
  770.      Cut
  771.      MarkLine CopyBlock CopyBlock CopyBlock UnmarkBlock
  772.      HorizontalWindow EditFile "$$$$$$$$.tmp" Return
  773.      BegFile BegLine         * Top of files in case it was already here
  774.      InsertLine InsertLine   * ??
  775.      Paste UnMarkBlock       * put block in place
  776.      EndFile AddLine BegFile * mandatory blank line on end
  777.    more:
  778.      WrapPara                * wrap each para
  779.      JTrue more:             * until none left
  780.      DelLine
  781.      BegFile BegLine
  782.      Find Return Return      * find our goofy char again
  783.      DelCh                   * and delete it
  784.      GotoColumn "512" Return MarkColumn BegFile BegLine MarkColumn
  785.      Cut Quit PrevWindow OneWindow
  786.      Paste GotoBlockEnd CursorDown BegLine UnMarkBlock
  787. *
  788. * 132 bytes Tue  10-02-1990  16:51:06 (added TH)
  789.  
  790. * This macro is too long for QCONFIG, you'll have to use QMAC to
  791. * compile it.  Then put the compiled macro files in some directory,
  792. * and add the following option to the command line your reader runs
  793. * QEdit with:
  794. *
  795. *      /Ld:\dir\filename.ext
  796. *
  797. * where D:\DIR\FILENAME.EXT is the full drive, path, and name of
  798. * the compiled binary macro file.
  799. *
  800. * I've used this macro myself to reformat quotes, for over a year
  801. * now.
  802. *
  803. * --Tim Farley
  804. *   SemWare Technical Support
  805.  
  806.  
  807.  
  808.  
  809. * ┌─────────────────────────────────────────────────────────────────────┐
  810. * │^(8_) Formats QMAC txtfile block with asterisk in column 1           │
  811. * └─────────────────────────────────────────────────────────────────────┘
  812. * To run, position the 'cursor line' on the first line of the block to
  813. * reformat.  Press Ctl_8, then cursor down to bottom of block to
  814. * reformat.  To reformat, press 'Enter' when the block is marked.  This
  815. * macro differs from Ctl_9 in that the block does not include the
  816. * asterisk and blank space; in Ctl_9 the block starting position is
  817. * selected by the starting position of the cursor line.  This macro also
  818. * differs from Ctl_0 which formats a paragraph from first blank line
  819. * which has no text or asterisk on line to last blank line.
  820. *
  821. *
  822. 09 Macrobegin
  823.         Unmarkblock                     * Get ready
  824.         Gotocolumn "512" Return         * Get all block to format
  825.         Markcolumn                      * Mark begin of block
  826.                 Begline                 * Start at line begin
  827.                 Wordright               * Get to first word on line
  828.         Cursordown                      * Position to cursor down
  829.         Makectrofscreen                 * See better
  830.         Pause                           * Cursor to end, then 'Enter'
  831.         Markcolumn                      * Mark end of block
  832.         Gotoblockbeg                    * Get to block begin
  833.  JFalse END:                            * No block? End
  834.         Cut                             * Get into scrap
  835.         Editfile "C:$" Return           * Load C:$ (temp file)
  836.         Paste                           * Paste block to C:$
  837.         Setrmargin "69" Return **       * Set rt margin to 69
  838.                                         ** change "69" as needed
  839.         Wrappara                        * Format block
  840.         Setrmargin "80" Return          * Reset rt margin to 80
  841.         Begfile                         * Get to block begin
  842.         Markcolumn                      * Mark
  843.         Endfile                         * Mark endblock
  844.         Gotocolumn "69" Return **       * Get all block marked
  845.                                         ** change "65" as needed
  846.         Copy                            * Get formatted block to scrap
  847.         Killfile Quit                   * Kill/quit C:$
  848.         Pasteover                       * Put back formatted, marked
  849.         Makectrofscreen                 * Better view
  850.  END:
  851. *
  852. * 61 bytes Tue  09-11-1990  19:21:48
  853.  
  854.  
  855.  
  856.  
  857. * ┌─────────────────────────────────────────────────────────────────────┐
  858. * │^(9_) Formats Block.  Must position cursor at beginning of block     │
  859. * └─────────────────────────────────────────────────────────────────────┘
  860. * To run, position the 'cursor' at the beginning of the block to
  861. * reformat.  Press Ctl_9, then cursor down to bottom of block to
  862. * reformat.  Press 'Enter' when the block is marked.  This macro differs
  863. * from Ctl_8 in that the starting position of the block to be
  864. * reformatted is selected by the starting position of the cursor; in
  865. * Ctl_8 the block starting POSITION is selected by the starting
  866. * position of the cursor line.
  867. *
  868. *
  869. 10 Macrobegin
  870.         Unmarkblock                     * Get ready
  871.         Gotocolumn "512" Return         * Get all block to format
  872.         Markcolumn                      * Mark begin of block
  873.         Prevposition                    *
  874.         Begline                         *
  875.         Prevposition                    *
  876.         Makectrofscreen                 * See better
  877.         Cursordown                      * Position to cursor down
  878.         Pause                           * Cursor to end, then 'Enter'
  879.         Markcolumn                      * Mark end of block
  880.         Gotoblockbeg                    * Get to block begin
  881.  JFalse END:                            * No block? End
  882.         Cut                             * Get into scrap
  883.         Editfile "C:$" Return           * Load C:$ (temp file)
  884.         Paste                           * Paste block to C:$
  885.         Setrmargin "69" Return **       * Set rt margin to 69
  886.                                         ** change "69" as needed
  887.         Wrappara                        * Format block
  888.         Setrmargin "80" Return          * Reset rt margin to 80
  889.         Begfile                         * Get to block begin
  890.         Markcolumn                      * Mark
  891.         Endfile                         * Mark endblock
  892.         Gotocolumn "69" Return **       * Get all block marked
  893.                                         ** change "69" as needed
  894.         Copy                            * Get formatted block to scrap
  895.         Killfile Quit                   * Kill/quit C:$
  896.         Pasteover                       * Put back formatted, marked
  897.         Makectrofscreen                 * Better view
  898.  END:
  899. *
  900. * 62 bytes Tue  09-11-1990  19:09:31
  901.  
  902. *        This is a test block.  To format, place the "cursor" on "t" in
  903. *               in "this" on line 1.  Then press Ctl_9 and cursor down to
  904. *               block end.  When the block has been marked press
  905. *               'Enter'.
  906. *               Asterisks need not be removed.
  907.  
  908.  
  909.  
  910.  
  911. * ┌─────────────────────────────────────────────────────────────────────┐
  912. * │^(0_) Formats Paragraph Only.  Keeps in original indented position   │
  913. * └─────────────────────────────────────────────────────────────────────┘
  914.  
  915. * To run, place cursor line anywhere in a paragraph, and press Ctl_0.
  916. * This macro yields the same formatted paragraph as does Ctl_3 if
  917. * the right margin is set to 69 in the QEdit menu or in QCONFIG.DAT.
  918. * This macro is the starting point for putting together macros Ctl_8
  919. * and 9.  If there are asterisks in column 1 they are also formatted as
  920. * part of the paragraph.
  921.  
  922. 11 Macrobegin
  923.         Unmarkblock                     * Get ready
  924.         Cursordown                      * Get into paragraph
  925.         Prevpara                        * Get to paragraph begin
  926.         Markcolumn                      * Mark column
  927.         Endpara                         * Get to paragraph end
  928.         Gotocolumn "512" Return         * Get all paragraph in block
  929.         Markcolumn                      * Mark paragraph
  930.         Gotoblockbeg                    * Get to paragraph begin
  931.  JFalse END:                            * No block? End
  932.         Cut                             * Get into scrap
  933.         Editfile "C:$" Return           * Load C:$ (temp file)
  934.         Paste                           * Paste block to C:$
  935.         Setrmargin "69" Return **       * Set rt margin to 69
  936.                                         ** change "69" as needed
  937.         Wrappara                        * Format block
  938.         Setrmargin "80" Return          * Set rt margin to 80
  939.         Begfile                         * Get to block begin
  940.         Markcolumn                      * Mark
  941.         Endfile                         * Mark end block
  942.         Gotocolumn "69" Return **       * Get all block marked
  943.                                         ** change "69" as needed
  944.         Copy                            * Get formatted block to scrap
  945.         Killfile Quit                   * Kill/quit C:$
  946.         Paste                           * Put back formatted, marked
  947. *         Pasteover                       * Put back formatted, marked
  948.         Begline
  949.         Makectrofscreen                 * Better view
  950.  END:
  951. *
  952. * 60 bytes Tue  09-11-1990  19:12:08
  953.  
  954.  
  955. *****************************TEST PARAGRAPH************************************
  956.  
  957.        This is a (test) paragraph.
  958.                 Place the cursor line anywhere in this paragraph to run.
  959.                 Press Ctl and 0 at the same time.
  960.                 Be sure AutoIndent is ON.  (Long line for test )==>>>>>>>>>>>>>> ***************************************** ***************************************** ***************************************** ***************************************** ***************************************** *****************************************
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967. ******************************TEST PARAGRAPH***********************************
  968.  
  969. *┌───────────────────────────────────────────────────────────────────┐
  970. *│@(h) Finds first word on cursor line marked in document below      │
  971. *└───────────────────────────────────────────────────────────────────┘
  972. *
  973. *        @h macro has 2 steps:
  974. *
  975. *        1.  Press @ and h at the same time.  An ! shows at the
  976. *        end of the top line.  Cursor down to desired line in Index.
  977. *
  978. *        2.  Press Enter.  The macro first erases the !, and
  979. *        then finds the first word on the cursor line in the document
  980. *        below marked with (...).
  981. *
  982. * See BOOK15.QM for more details.
  983. *
  984. @H Macrobegin
  985.         Unmarkblock                     * Unmark any marked blocks
  986.         Begfile Endline                 * Go to file begin endline
  987.         "!"                             * Put ! at endline
  988.         Begline
  989.         Find "!" Return Return Begline  * Highlight !
  990.         Pause                           * Pause for Index selection
  991.         Wordright Markword              * Mark first word on line
  992.         Copy                            * Copy word to scrap buffer
  993.         Begfile                         * Begfile
  994.         Find "!" Return Return Delch    * Find & delete !
  995.         Endpara                         * Go to end of Index
  996.         Makectrofscreen                 * Cursor line center of window
  997.         Find "(" Paste ")"
  998.         Return "I" Return               * Find first marked word in doc
  999.  Jfalse NOMARK:
  1000.         Begline                         * If mark found go to begline
  1001.  Jump END:
  1002.  NOMARK:
  1003.         Begfile                         * If no mark found go to begfile
  1004.  END:
  1005. *
  1006. * 47 bytes Fri  09-14-1990  14:06:26
  1007.  
  1008.  
  1009.  
  1010. *┌───────────────────────────────────────────────────────────────────┐
  1011. *│ @(F1) Right Justify to file with same prefix, ".rj" extension     │
  1012. *└───────────────────────────────────────────────────────────────────┘
  1013. * Macros @F1 and @F2 use the right justification program RJ.COM which is
  1014. * included and must be located in current directory or path. See below
  1015. * for documentation of RJ.COM.
  1016.  
  1017. *
  1018. @F1 macrobegin
  1019.         Unmarkblock Begfile Insertline  * Insert temp line with     |2.4
  1020.         Dropanchor Currentfilename      * CurrentFileName marked
  1021.         Find "." Return "B" Return      * Find dot backwards
  1022.         Deltoeol ".rj"                  * THEN add ".rj" after dot  |2.3
  1023.         Cut Savefile                    * Cut name.rj to scrap/SaveFILE
  1024.         DOS "RJ " Currentfilename       * Right justify file
  1025.         ">" Paste Return Return         *
  1026.         Editfile Paste Return Quit      *
  1027.         Editfile Return                 * Load justified file
  1028.  FIRSTWORD:                             * FIRSTWORD loop removes right
  1029.                                         * justification from last line
  1030.                                         * of paragraph, often neater!
  1031.         EndPara Begline                 * Get to end of paragraph
  1032.         Shiftright Wordright            * Put cursor on start of first
  1033.         Shiftleft Cursorleft            * word on line
  1034.         Markcolumn Endline Markcolumn   * Marks from first word to eol
  1035. *----Remove Right Justification From Last Line in Paragraph-------*
  1036.         Begline
  1037.         FindReplace "    " Return " " Return "LN" Return Begline
  1038.         FindReplace "   "  Return     Return "LN" Return Begline  *|2.4
  1039.         FindReplace "  "   Return     Return "LN" Return          *|2.4
  1040.         Unmarkblock NextPara            * Get to begin next paragraph
  1041.         jtrue FIRSTWORD:                * More para? Loop again    |2.4
  1042.  FINISH:                                *ELSE
  1043.         Begfile                         * Go tof
  1044. *
  1045. * 126 bytes Tue  12-04-1990  20:55:28
  1046. * 119 bytes Fri  02-15-1991  12:50:02
  1047. * 106 bytes Wed  02-20-1991  16:28:30
  1048.  
  1049. * ......................Documentation for RJ.COM...................
  1050. *
  1051. *  USAGE: RJ <INFILE> { PRINT_MARGIN F S }
  1052. *
  1053. *  WHERE: 0=< PRINT_MARGIN =<40              Default = 0   enter like: 8
  1054. *   F FILTERS control chars                  Default = OFF enter like: F
  1055. *   S SUPPRESS Line Feeds after CR           Default = OFF enter like: S
  1056. *
  1057. *  PURPOSE:  RJ  Right Justifies  your  printer output,  making  it look
  1058. * professional.  RJ  right  justifies  text  files  by  imbedding blanks
  1059. * between  words. It  is compatible  with  VDE or  any other  ASCII text
  1060. * editor. Public domain.
  1061. *
  1062. *  METHOD: RJ  imbeds spaces  between words.  It calculates  the longest
  1063. * line in the  file (40 to  255 char), then  justifies shorter lines (up
  1064. * to  15%  shorter ). Non-printable  control characters  are not counted
  1065. * for  formatting  purposes, so  leave  them  in if  you  wish. Carriage
  1066. * Returns,  Line  Feeds,  Form  Feeds,  and  Tabs  are  always processed
  1067. * normally  and  printed. Indenting  at  the  beginning of  the  line is
  1068. * disregarded, but any  line with 3+  IMBEDDED spaces, or  any line with
  1069. * Tabs is not justified. This leaves tables, charts, etc. intact.
  1070. *
  1071. *   HINTS: All  parameters except  INFILE are  optional and  they may be
  1072. * entered in any order; the defaults are above. Note that the input file
  1073. * is left unalterd;  output defaults to  the screen. This  allows you to
  1074. * preview your  printer output.  To print  or copy  your right justified
  1075. * file, use the DOS redirection operator: RJ REPORT.TXT  F 6 > PRN. Save
  1076. * your normal parameters in a batch file.
  1077.  
  1078.  
  1079.  
  1080.  
  1081. *┌──────────────────────────────────────────┐
  1082. *│ @(F2) Right Justify, screen preview      │
  1083. *└──────────────────────────────────────────┘
  1084. * Macros @F1 and @F2 use the right justification program RJ.COM which is
  1085. * included and must be located in current directory or path. See above
  1086. * for documentation of RJ.COM.
  1087. *
  1088. @f2 Macrobegin
  1089.     Savefile
  1090.     DOS "RJ " Currentfilename Return
  1091. *
  1092. * 14 bytes Sun  12-02-1990  01:02:50
  1093.  
  1094.  
  1095.  
  1096. *┌───────────────────────────────────────────────────────────────────┐
  1097. *│@(F4) Removes Right Justification from line or block               │
  1098. *└───────────────────────────────────────────────────────────────────┘
  1099. * Position cursor on first line to be un-justified, press @F4, then
  1100. * cursor down to last line to be un-justified, and press <Enter>.
  1101. * If cursor is between paragraphs, cursor is automatically placed on the
  1102. * first word of the next paragraph.
  1103. *
  1104. @F4 Macrobegin
  1105.         Unmarkblock
  1106.  START:
  1107.         Endline Begline                 * Test if line not blank
  1108.         Jtrue FIRSTWORD:                * If not blank, goto FIRSTWORD
  1109.         Wordright                       * If blank, goto first word
  1110.         Jump START:                     * and check for blank line again
  1111.  FIRSTWORD:                             *
  1112.         Shiftright Wordright            * Put cursor on start of first
  1113.         Shiftleft Cursorleft            * word on line,
  1114.         Gotocolumn "80" Return          * Get all line in block   *|2.4
  1115.         Markcolumn Prevposition         * Mark column at first word
  1116.         Begline                         * Reposition cursor
  1117.         Jfalse NEXT:                    * If first word in col. 1,
  1118.                                         * test is false, go to NEXT
  1119.         Prevposition                    * Otherwise, back to first word
  1120.  NEXT:
  1121.         Pause                           * Pause to cursor to last line
  1122.         Markcolumn                      * Mark end of block
  1123.         Gotoblockbeg                    * Get to block begin
  1124.         FindReplace "    " Return " " Return "LN" Return
  1125.         FindReplace "   "  Return     Return "LN" Return           *|2.4
  1126.         FindReplace "  "   Return     Return "LN" Return           *|
  1127.         Unmarkblock                     *
  1128.         Nextpara                        *
  1129.         Makectrofscreen                 *
  1130. *
  1131. * 87 bytes Fri  12-07-1990  12:32:09
  1132. * 81 bytes Wed  02-20-1991  12:48:50
  1133.  
  1134.  
  1135.  
  1136. *┌───────────────────────────────────────────────────────────────────┐
  1137. *│ @(F5) Removes Right Justification from DOCUMENT                   │
  1138. *└───────────────────────────────────────────────────────────────────┘
  1139. *
  1140. @F5 Macrobegin
  1141.         Begfile Unmarkblock             *
  1142.  START:                                 *
  1143.         Endline Begline                 * Test if line not blank
  1144.         Jtrue FIRSTWORD:                * If so, goto FIRSTWORD
  1145.         Wordright                       * If not, move to first word
  1146.         Jump START:                     * and check for blank line again
  1147.  FIRSTWORD:                             * FIRSTWORD loop removes right
  1148.                                         * justification from paragraph
  1149.         Begline
  1150.         Shiftright Wordright            * Put cursor on start of first
  1151.         Shiftleft Cursorleft            * word on line,
  1152.         Markcolumn Endpara              * and start column mark
  1153.         Gotocolumn "80" Return          * Be sure to get all para |2.4
  1154.                                         * in block
  1155.         Markcolumn                      * Mark para as block
  1156.         Gotoblockbeg                    * Start @ block begin     |
  1157.         FindReplace "    " Return " " Return "LN" Return         *|
  1158.         FindReplace "   "  Return     Return "LN" Return         *|2.4
  1159.         FindReplace "  "   Return     Return "LN" Return         *|
  1160.         Unmarkblock                                              *|
  1161.         NextPara                        * Get to begin next para  |
  1162.         Jtrue FIRSTWORD:                * More para? Loop again   |2.4
  1163.    FINISH:                              * No more paragraphs
  1164.         Begfile
  1165. *
  1166. * 96 bytes Wed  12-05-1990  10:42:45
  1167. * 80 bytes Wed  02-20-1991  12:46:32
  1168.  
  1169.  
  1170.  
  1171. *----------------------------
  1172. * @(F6) Right Justifies BLOCK
  1173. *----------------------------
  1174. *
  1175. * Mark block to right justify and press @F6. Block must be a line or
  1176. * character block, NOT a column block.
  1177. *
  1178. *         Remember, block to be right justified must
  1179. *         be at  least 2  lines. Right justification
  1180. *         RJ.COM calculates the  longest line in the
  1181. *         block  (40  to 255  char),  then justifies
  1182. *         shorter   lines  (up  to  15%  shorter) by
  1183. *         imbedding spaces between words. This block
  1184. *         was   right  justified  with  @F6  WITHOUT
  1185. *         asterisks.
  1186. *
  1187. @F6 Macrobegin
  1188. *---Copy Block To Temp File-------------*
  1189.         Editfile "c:!" Return           * Load temp file c:!
  1190.         Killfile Quit                   * Kill/quit it
  1191.         Gotoblockbeg                    * Position cursor to come back
  1192.         Jfalse STOP:                    * Stop macro if no block
  1193.         Onewindow                       * Close all windows
  1194.         Horizontalwindow Zoomwindow     * Open window               |2.5
  1195.         Editfile Return                 * Load blank temp file c:!
  1196.         Copyblock                       * Copy block to c:!
  1197. *---Cut "c:!.rj" To Scrap---------------*
  1198.         Unmarkblock Begfile             * Unmark block & go to bof c:!
  1199.         Insertline Currentfilename      * Insert CurrentFileName "c:!"
  1200.         ".rj"                           * Add ".rj" extension
  1201.         Cut                             * Cut "c:!.rj" to scrap
  1202. *>>> QCONFIG.DAT must be configured to cut unmarked lines to scrap: <<<
  1203. *>>> Should Cut and Copy use current line if no block marked (Y/N)? [Y]
  1204.         Savefile                        * Save c:! to right justify it
  1205. *---Right Justify Temp File-------------*
  1206.         DOS "RJ " Currentfilename       * Right justify c:! temp file
  1207.         ">" Paste Return Return         * to c:!.rj
  1208.         Editfile Paste Return Quit      * Quit c:!.rj if loaded
  1209.         Horizontalwindow Zoomwindow     * Open window               |2.5
  1210.         Editfile Return                 * Load justified file c:!.rj
  1211. *---Mark Right Justified Block----------*
  1212.         Markcolumn                      * Begin marking at tof
  1213.         Endfile                         * Go to eof
  1214.         Gotocolumn "80" Return          * Get all text in block
  1215.         Cursorup Markcolumn             * Move up off blank line, mark
  1216. *---Copy Right Justified Block Back-----*
  1217.         Nextwindow                      * Return to orig file
  1218.         Copyoverblock                   * Copy right justified block
  1219.                                         * back to where we were
  1220. *---Clean Up Temp Files, View RJ Block--*
  1221.         Nextwindow Killfile Quit        * Kill/quit c:!.rj and return
  1222.                                         * to where we started
  1223.         Editfile "c:!" Return           * Load c:! to kill/quit
  1224.         Killfile Quit                   * and do it!
  1225.         Gotoblockbeg                    * Go back to where we started &
  1226.                                         * unmark/save file if OK!
  1227.  STOP:                                  * We're done.....
  1228. *
  1229. * 81 bytes Wed  02-20-1991  15:18:39
  1230. * 83 bytes Mon  02-25-1991  06:51:47 added Zoomwindow's
  1231.  
  1232.  
  1233.  
  1234.  
  1235. * ┌─────────────────────────────────────────────┐
  1236. * │@(F7) Deletes ALL BLANK lines in document    │
  1237. * └─────────────────────────────────────────────┘
  1238. * Single space document.
  1239. *
  1240. @F7 Macrobegin
  1241.         Begfile                         * Go to bof
  1242.  CHK4BLANK:                             *
  1243.         Endline Begline                 * Check if line has text
  1244.         Jtrue  NOTBLANK:                * If so, go to NOTBLANK
  1245.         Delline                         * Or line is blank, delete it
  1246.         Jtrue CHK4BLANK:                * Go check next line
  1247.  NOTBLANK:                              *ELSE
  1248.         Endpara                         * Move to pargraph end
  1249.         Cursordown                      * Move down to blank line  |
  1250.         Jtrue CHK4BLANK:                * If not eof, check again  |2.4
  1251.         Begfile                         * Go to bof
  1252. *
  1253. * 23 bytes Thu  10-11-1990  20:59:17
  1254. * 20 bytes Wed  02-20-1991  16:48:58
  1255.  
  1256.  
  1257.  
  1258.  
  1259. * ┌────────────────────────────────────────────────────────────────┐
  1260. * │@(F8) Deletes all but single space blank lines in documennt     │
  1261. * └────────────────────────────────────────────────────────────────┘
  1262. * Puts first non-blank line on top.
  1263. *
  1264. @F8 Macrobegin
  1265.         Begfile                         * Go to bof
  1266.  CHK4BLANK:                             *
  1267.         Endline Begline                 * Check if line has text
  1268.         Jtrue  NOTBLANK:                * If text, go to NOTBLANK
  1269.         Delline                         *ELSE delete blank line    |
  1270.         Jtrue CHK4BLANK:                * Go check this line       |
  1271.  NOTBLANK:                              *ELSE
  1272.         Endpara                         * Move to pargraph end
  1273.         Cursordown                      * Move to blank line 1     |2.4
  1274.         Cursordown                      * And down to next line
  1275.         Jtrue CHK4BLANK:                * If not eof, check again  |2.4
  1276.     Begfile                            *ELSE at eof, go to bof     |
  1277. *
  1278. * 24 bytes Thu  10-11-1990  21:12:50
  1279. * 21 bytes Wed  02-20-1991  16:46:39
  1280.  
  1281.  
  1282.  
  1283.  
  1284. *----------------------------
  1285. * @(F9) Double Space document
  1286. *----------------------------
  1287. *
  1288. * With cursor anywhere in a document, press @F9 and document will
  1289. * be double spaced with a single blank line between each text line.
  1290. *
  1291. * Removing the five lines marked with ** in the @f10 macro below will
  1292. * also double space a document like @F9 does.
  1293. *
  1294. @F9 Macrobegin
  1295.                 Begfile                 * Start at tof
  1296.  START:         Endline Begline         * ? if line has text
  1297.                 Jfalse DEL_BLANK:       * No text, go to DEL_BLANK:
  1298.     INS_BLANK: *----------------Insert Blank Line LOOP-----------------*
  1299.                                         *ELSE line is not blank, and
  1300.                 Cursordown              * Move down to check next line
  1301.                 Jfalse END:             * If at eof, END macro
  1302.                                         *
  1303.                 Endline Begline         *ELSE ? if next line has text
  1304.                 Jfalse NEXT_LINE:       * No text, go to NEXT_LINE
  1305.                                         *ELSE line is not blank, and
  1306.                 Insertline              * Insert blank line between
  1307.                                         * two text lines
  1308.                 Cursordown              * Move down to next line
  1309.     Jump INS_BLANK:                     * Go check this line for text
  1310.     NEXT_LINE:  Cursordown              * Move down to check next line
  1311.  Jump START:                            * Go check line for text
  1312.     DEL_BLANK: *---------Delete More Than One Blank Line LOOP----------*
  1313.                 Cursordown              * Move down to check if eof
  1314.                 Jfalse END:             * If at eof, END macro
  1315.                                         *ELSE not yet at eof, and
  1316.                 Cursorup                * Move back up to second blank
  1317.                 Delline                 * line and delete it
  1318.  Jump START:                            * Go check line for text
  1319.  END:                                   *
  1320.                 Begfile                 *
  1321. *
  1322. * 38 bytes Fri  02-22-1991  13:22:05
  1323.  
  1324.  
  1325.  
  1326.  
  1327. *------------------------------
  1328. * @(F10) Triple space document
  1329. *------------------------------
  1330. *
  1331. * With cursor anywhere in a document, press @F10 and document will
  1332. * be triple spaced with two blank lines between each text line.
  1333. *
  1334. * Removing the four lines marked with ** in this macro will double space
  1335. * a document like @F9 (a simpler shorter macro) does.
  1336. *
  1337. @F10 Macrobegin Begfile                 * Start at tof
  1338.  INITIAL:   *----------Delete All Blanks lines on Top LOOP-------------*
  1339.                 Endline Begline         * ? if top line has text
  1340.                 Jtrue START:            * If text line, go to START
  1341.                 Delline                 *ELSE delete line
  1342.  Jump INITIAL:                          * and continue until no blank
  1343.                                         * lines on top
  1344.  START:     *--------------Check Line For Text LOOP--------------------*
  1345.                 Endline Begline         * ? if line has text
  1346.                 Jfalse DEL_BLANK:       * No text, go to DEL_BLANK:
  1347.     INS_BLANK: *----------------Insert Blank Line LOOP-----------------*
  1348.                                         *ELSE line is not blank, and
  1349.                 Cursordown              * Down to next line
  1350.                 Jfalse END:             * If at eof, END macro
  1351.                 Endline Begline         * ? if next line has text
  1352.                 Jfalse DEL_BLANK:       * If line blank. go check next
  1353.                                         * line
  1354.                                         *ELSE line is not blank, then
  1355.                 Insertline              * insert blank line
  1356.                 Addline                ** And another
  1357.                 Cursordown              * Move down to next line
  1358.     Jump INS_BLANK:                     * Go check next line for text
  1359.     DEL_BLANK: *-----------------Delete Blank Line LOOP----------------*
  1360.                 Cursordown              * Move down off first blank line
  1361.                 Jfalse END:             * If at eof, END macro
  1362.                                         *ELSE not yet at eof, and
  1363.                 Endline Begline         * Check line for text
  1364.                 Jfalse CONTINUE:        * If blank, go to CONTINUE:
  1365.                 Insertline             **ELSE must be text line and
  1366.                                         * insertline blank #2
  1367.                 Cursordown             ** Down to text line
  1368.     Jump INS_BLANK:                     * Go check next line
  1369.     CONTINUE:
  1370.                 Cursordown             ** Move down to next line
  1371.     NEXT:      *---------Delete More Than 2 blank lines LOOP-----------*
  1372.                 Endline Begline         * Check line for text
  1373.                 Jtrue INS_BLANK:        * If text, go check next line
  1374.                                         * for text
  1375.                                         *ELSE line is blank
  1376.                 Delline                 * and delete it
  1377.                 Jfalse END:             * If at eof, can't delete more
  1378.                                         * than 1 blank line, then END
  1379.     Jump NEXT:                          * Loop to delete blank lines
  1380.                                         * until text line
  1381.  END:                                   * Here to END
  1382.                 Begfile                 * Back to top triple space file
  1383. *
  1384. * 58 bytes Sat  02-23-1991  12:15:45 Double Space (** lines removed)
  1385. * 62 bytes Sun  02-24-1991  13:33:59 Triple Space
  1386.  
  1387.  
  1388. * *------------------------------------------------
  1389. * * @(F10) Triple space document, Alternate version
  1390. * *------------------------------------------------
  1391. * *
  1392. * * This alternate version of @F10 will also triple space a document but
  1393. * * will take about twice as long to do. Removing the two lines marked
  1394. * * with ** will also double space documents but also more slowly!
  1395. * *
  1396. * @F10 Macrobegin
  1397. * *-----Insert single space blank line after every text line---*
  1398. *         Begfile                         * Go to bof
  1399. *  CHK4BLANK:                             *
  1400. *         Endline Begline                 * Check if line has text
  1401. *         Jfalse  NOTBLANK:               * If no text, go to NOTBLANK
  1402. *         Addline                         *ELSE line is text, add line
  1403. *         Addline                        ** Remove for double space
  1404. *         Cursordown                      * Move down to blank line
  1405. *         Jump CHK4BLANK:                 * Go check this line
  1406. *  NOTBLANK:                              *ELSE line has text
  1407. *         Cursordown                      * Move down to next line
  1408. *         jtrue CHK4BLANK:                * If not at eof, check for text
  1409. * *-----Delete all but single space blank lines-----*
  1410. *         Begfile                         *ELSE Go to bof to get rid of
  1411. *  CHK4BLANK2:                            * extra blank lines
  1412. *         Endline Begline                 * Check if line has text
  1413. *         Jtrue  NOTBLANK2:               * If text, go to NOTBLANK2
  1414. *         Delline                         *ELSE line is blank, delete it
  1415. *         Jtrue CHK4BLANK2:               * Go check next line
  1416. *  NOTBLANK2:                             *ELSE line was blank and
  1417. *         Cursordown                      * Move down to next line
  1418. *         Cursordown                      * Move down to next line
  1419. *         Cursordown                     ** Remove for double space
  1420. *         Jtrue CHK4BLANK2:               * If not eof, check again
  1421. *         Begfile                         * Spacing done, Go to tof...
  1422. * *
  1423. * * 37 bytes Thu  02-21-1991  13:06:11
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429. * ==============================================================================
  1430. * Date: 10-10-90 (11:44)           Number: 10442        SemWare Support BBS
  1431. *   To: ALL                        Refer#: NONE
  1432. * From: SAMMY MITCHELL               Read: NO
  1433. * Subj: MACROS                       Conf: (0) Main Board
  1434. * ------------------------------------------------------------------------
  1435. * We (SemWare) have been asked on many occasions how to change the CR/LF
  1436. * characters at EOF to something else.  In most instances, the task that
  1437. * the user wanted to accomplish could be done in another way.  For
  1438. * example, we've had many requests to convert a mailing list file to a
  1439. * comma delimited file for import into a database.  Here are some example
  1440. * macros to make a comma delimited file, and convert a comma delimited
  1441. * file back to its original format.  These macros will have to be
  1442. * compiled with Qmac, as they are too large for Qconfig.  I do hope that
  1443. * this helps someone!
  1444. *
  1445. *  (Key assignements changed TH    Wed  10-10-1990  )
  1446. * ---------------------------------------------------------------------
  1447. * ^(F9_) Macro to make a comma delimited file from a file of the format:
  1448. * ---------------------------------------------------------------------
  1449. * record 1
  1450. * record 2
  1451. * record n
  1452. *
  1453. * Each group of name/address must be followed by at least one blank
  1454. * line.
  1455.  
  1456. ^F9 MacroBegin
  1457.         BegFile                         * Make sure at top
  1458.   While1:
  1459.         BegLine EndLine JTrue While2:   * Break out if non empty line
  1460.         DelLine                         * Delete the blank line
  1461.         CursorDown JFalse Macroexit:    * Exit macro if eof
  1462.         CursorUp                        * Back up to the line to test
  1463.         Jump While1:                    * Keep looping while blank
  1464. * nonblank line found - see if next line is nonblank also
  1465.   While2:
  1466.         CursorDown JFalse Macroexit:    * exit macro if eof
  1467.         BegLine EndLine JFalse While1:  * if blank line, start over
  1468.         CursorUp EndLine "," JoinLine   * join the next line
  1469.         Jump While2:                    * and keep on until blank
  1470.   Macroexit:
  1471.         BegFile                         * show user bof
  1472. *
  1473. * 37 bytes Wed  10-10-1990  22:16:45 (line added TH)
  1474.  
  1475.  
  1476.  
  1477.  
  1478. * ---------------------------------------------------------------------
  1479. * ^(F10_) Macro to "break apart" a comma delimited file, as created from
  1480. *       the ^F9  macro above.
  1481. * ---------------------------------------------------------------------
  1482.  
  1483. ^f10 MacroBegin
  1484.         BegFile                         * Start at bof
  1485.   find_first_comma:
  1486.         Find "," Return "" Return       * Find first comma
  1487.         jFalse macroexit:               * Exit if none
  1488.   makeline:
  1489.         UnMarkBlock
  1490.         DelCh                           * Delete the ','
  1491.         SplitLine                       * Split the line
  1492.         CursorDown                      * Next line
  1493.         BegLine                         * Column 1
  1494. * remove leading blanks
  1495.   delete_blanks:
  1496.         UnMarkBlock
  1497.         DropAnchor
  1498.         Find " " Return "GL" Return     * Blank found?
  1499.         jFalse continue                 * No, continue
  1500.         DelCh                           * Delete it
  1501.         jump delete_blanks:             * And try again
  1502.   continue:
  1503.         UnMarkBlock
  1504.         MarkLine                        * Look for next  ,' on line
  1505.         Find "," Return "L" Return      *
  1506.         jTrue makeline:                 * Split if found
  1507.         UnMarkBlock
  1508.         AddLine                         * Otherwise, add a blank line
  1509.         jump find_first_comma:          * And look for another ','
  1510.   macroexit:
  1511.         BegFile                         * Show user bof
  1512. *
  1513. * 54 bytes Wed  10-10-1990  22:17:04 (line added TH)
  1514. *
  1515. * That's all, folks!
  1516.  
  1517.  
  1518.  
  1519. * ┌───────────────────────────────────────────────────────────────────┐
  1520. * │^(b) Replace "period space" w/ "period space space" - PARAGRAPH    │
  1521. * └───────────────────────────────────────────────────────────────────┘
  1522. * This macro was written by Tim Farley of SemWare.
  1523. *
  1524. * =========================================================================
  1525. * Date: 01-18-91 (13:59)           Number: 3433         SemWare Support BBS
  1526. *   To: BOB LONG                   Refer#: 3430
  1527. * From: TIM FARLEY                   Read: YES
  1528. * Subj: Legibility breaks            Conf: (21) ILink
  1529. * ------------------------------------------------------------------------
  1530. * BL>It had to do with retaining double spaces between sentences
  1531. * BL>even when they fall at the ends of lines and then get moved when the
  1532. * BL>paragraph is reformed.  I reinstalled 2.1, choosing the option to
  1533. * BL>retain trailing blanks, but QEdit still removes one blank.
  1534. * BL>
  1535. * BL>Is there a workaround?
  1536. *
  1537. * The only workaround I know for that one would be to encase
  1538. * WrapPara in a macro, that would mark the entire paragraph as a
  1539. * block, and do a global search and replace (limited to the block)
  1540. * to change ". " to ".  " to put the spaces back in.  Kludgy, and
  1541. * not perfect, but perhaps workable.
  1542. *
  1543. * Here's what it would look like:
  1544. *
  1545. * *
  1546. * * WrapPara modification:  retains double spacing after "." chars.
  1547. * *
  1548. ^b      MacroBegin UnmarkBlock      * we're going to be using blocks
  1549.         MarkCharacter WrapPara      * Wrap paragraph & mark rest of it
  1550.         MarkCharacter GotoBlockBeg  * Close mark & go to begin of it
  1551.         FindReplace ". " Return     * Change period with single space
  1552.         ".  " Return "LN" Return    * to one with double space.
  1553.         JFalse end:                 * None?  We're done...
  1554.         FindReplace ".   " Return   * Now fix any that ended up with 3
  1555.         ".  " Return "LN" Return    * to have just two again.
  1556.      end:
  1557.         GotoBlockEnd UnmarkBlock
  1558. *
  1559. * 54 bytes Fri  01-18-1991  21:23:45 (line added TH January 18, 1991)
  1560.  
  1561. *
  1562. * As usual, remove the comments to the right, and reformat this all on one
  1563. * line if you plan to put it in QCONFIG.DAT.
  1564. *
  1565. * --Tim Farley
  1566.  
  1567.  
  1568.  
  1569.  
  1570. * ┌──────────────────────────────────────────────────────────────────┐
  1571. * │^(c) Replace "period space" w/ "period space space" - DOCUMENT    │
  1572. * └──────────────────────────────────────────────────────────────────┘
  1573. *
  1574. *  Change "GN" to "G" for replacement with confirmation.
  1575. *
  1576. ^c      MacroBegin
  1577.         FindReplace ". "   Return ".  " Return "GN" Return
  1578.         FindReplace ".   " Return       Return "GN" Return *|2.4
  1579. *
  1580. * 44 bytes Sat  01-19-1991  11:18:17
  1581. * 38 bytes Wed  02-20-1991  01:09:09
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589. * (VERSION) HISTORY:
  1590. *
  1591. *       1.1 - added Alt_6,7 & 8 to format QMAC txtfiles
  1592. *       1.1a- modified Alt_8,9 & 10 to get off screen-text in block
  1593. *       1.2 - added Alt_5 to format entire document QUICKLY keeping
  1594. *                         indented paragraph positions in place
  1595. *                   Alt_4 to format entire document keeping indented
  1596. *                         paragraph positions in place
  1597. *                   Alt_3 to format paragraph only
  1598. *           - modified other macros to handle line widths to 512
  1599. *       1.2a- modified this documentation
  1600. *       1.2b- Added @2 to make single column txtfile from
  1601. *             QMAC txtfile, v1.2b
  1602. *       1.2c- changed 160 in @9 to 512
  1603. *       1.2d- @2 removed, now in COLUMN10.ZIP
  1604. *           - @4 removed
  1605. *           - added killfile @0
  1606. *           - changed macro comments
  1607. *       1.3 - added Alt_1 & 2 to put asterisk and space in front
  1608. *             of blocks and paragraphs
  1609. *       1.4 - added Alt_4 to remove asterisk and space in column 1
  1610. *       1.5 - added Alt_t (from Tim Farley) to do the same as Alt_1
  1611. *           - changed key assignments
  1612. *           - added Alt_2 to remove asterisks in front of blocks
  1613. *           - shortened Alt_1 to 32 bytes
  1614. *       1.5a- modified Alt_1 to handle blocks with blank lines
  1615. *           - changed "60" in Ctl_0 to "69"
  1616. *           - Alt_t modified by Tim Farley to correctly handle column
  1617. *             and single line blocks.
  1618. *       1.5b- corrected documentation
  1619. *       1.5c- Changed file name REFORMxx to RFRMxx.
  1620. *       1.6 - Added @5.
  1621. *           - Changed ^5 and ^9 right margin to 69.
  1622. *           - Shortened ^8,9 and 0.
  1623. *       1.7 - Added @h to help locate items or macros from Index.
  1624. *           - Added @8 to have sentences end with "period space space"
  1625. *           - Added ^7 to Formats Message Reader Paragraph (Tim Farley)
  1626. *       1.8 - Added @9 and @0 to count number of words in a document.
  1627. *           - Added @n to count number of characters in a document.
  1628. *           - Added @F3 and @F4 to delete blank lines in documents.
  1629. *           - Added ^1/^2 to make/break-apart a comma delimited file.
  1630. *             (Written by Sammy Mitchell, SemWare)
  1631. *       1.9 - Shortened and removed redundant commands from @0.
  1632. *       2.0 - Added @F1 and @F2 to right justify documents.
  1633. *           - Added @F4 and @F5 to remove right justification.
  1634. *           - Modified documentation and added START.BAT.
  1635. *           - Changed REFORM file names to RFRM.
  1636. *           - Changed some key assignments.
  1637. *       2.1 - Modified documentation (@f4 and @f5).
  1638. *       2.2 - Corrected @h Index Use instructions.
  1639. *           - Added ^b to change ". " to ".  " in PARAGRAPHS.
  1640. *           - Modidfied ^c to change ".   " to ".  " in DOCUMENTS.
  1641. *       2.3 - Modified @F1 to handle file names with no extension &
  1642. *             shortened 7 bytes.
  1643. *       2.4 - Added @f6 to right justify line or character blocks.
  1644. *           - Added @F3 to capitalize first letter of every word in
  1645. *             column block.
  1646. *           - Added @F9  to Double Space all text lines in document.
  1647. *           - Added @F10 to Triple Space all text lines in document.
  1648. *           - Corrected, modified & shortened @F1,@F4 & @f5.
  1649. *           - Shortened @F7, @F8, @0, @n & ^c.
  1650. *       2.5 - Added ^1 to move block, fill old block with blanks.
  1651. *           - Added #f1 to capitalize word
  1652. *           - Added #f2 to capitalize first letter of word
  1653. *           - Added #f4 to un-capitalize word
  1654. *           - Changed @f3 key to #f3.
  1655. *           - Made @f6 smoother by addding Zoomwindow.
  1656. *           - Corrected size of @f10 in Index.
  1657.  
  1658. * Tom Hogshead  March 10, 1991
  1659.